9cd56baf00e1354157c2c96b9270bbc2a2e3c1ca,src/org/exist/storage/NativeTextEngine.java,InvertedIndex,flush,#,839
Before Change
for (Iterator i = words[currentSection].entrySet().iterator(); i.hasNext(); count++) {
entry = (Map.Entry) i.next();
token = (String) entry.getKey();
occurences = (OccurrenceList) entry.getValue();
termCount = occurences.getTermCount();
//Don't forget this one
occurences.sort();
os.clear();
os.writeInt(this.doc.getDocId());
switch (currentSection) {
case TEXT_SECTION :
os.writeByte(TEXT_SECTION);
break;
case ATTRIBUTE_SECTION :
os.writeByte(ATTRIBUTE_SECTION);
break;
default :
throw new IllegalArgumentException("Invalid inverted index");
}
os.writeInt(termCount);
lenOffset = os.position();
os.writeFixedInt(0);
previousGID = 0;
for (int j = 0; j < occurences.getSize(); ) {
delta = occurences.nodes[j] - previousGID;
os.writeLong(delta);
freq = occurences.getOccurrences(j);
os.writeInt(freq);
for (int k = 0; k < freq; k++) {
os.writeInt(occurences.offsets[j + k]);
After Change
Map.Entry entry = (Map.Entry) i.next();
String token = (String) entry.getKey();
OccurrenceList occurences = (OccurrenceList) entry.getValue();
int termCount = occurences.getTermCount();
//Don't forget this one
occurences.sort();
os.clear();
os.writeInt(this.doc.getDocId());
switch (currentSection) {
case TEXT_SECTION :
os.writeByte(TEXT_SECTION);
break;
case ATTRIBUTE_SECTION :
os.writeByte(ATTRIBUTE_SECTION);
break;
default :
throw new IllegalArgumentException("Invalid inverted index");
}
os.writeInt(termCount);
//TOUNDERSTAND -pb
int lenOffset = os.position();
os.writeFixedInt(0);
long previousGID = 0;
for (int j = 0; j < occurences.getSize(); ) {
long delta = occurences.nodes[j] - previousGID;
os.writeLong(delta);
int freq = occurences.getOccurrences(j);
os.writeInt(freq);
for (int k = 0; k < freq; k++) {
os.writeInt(occurences.offsets[j + k]);